package org.jim.core.helper.im;

import org.jim.core.packets.pub.pojo.Group;

import java.util.List;

/**
 * @FileName: GroupMessageHelper
 * @Description:
 * @Author linjie
 * @Date 2020/7/293:51 PM
 * @Version 4.0.0
 */
public interface IGroupHelper {


    /**
     * 获取指定群组所有成员信息
     *
     * @param groupId                               群组ID
     * @param type(0:所有在线用户,1:所有离线用户,2:所有用户[在线+离线])
     * @return
     */
    Group getGroupUsers(String groupId, Integer type);

    /**
     * 获取用户所有群组成员信息
     *
     * @param userId                                用户ID
     * @param type(0:所有在线用户,1:所有离线用户,2:所有用户[在线+离线])
     * @return
     */
    List<Group> getAllGroupUsers(String userId, Integer type);


    /**
     * 添加群组成员
     *
     * @param userId  用户ID
     * @param groupId 群组ID
     */
    void addGroupUser(String userId, String groupId);

    /**
     * 获取群组所有成员;
     *
     * @param groupId 群组ID
     * @return
     */
    List<String> getGroupUsers(String groupId);

    /**
     * 获取用户拥有的群组ID;
     *
     * @param userId 用户ID
     * @return
     */
    List<String> getGroups(String userId);


    /**
     * 移除群组用户
     *
     * @param userId  用户ID
     * @param groupId 群组ID
     */
    void removeGroupUser(String userId, String groupId);
}
